#ifndef INDEX_H_
#define INDEX_H_

#include <stdlib.h>
#include <stdio.h>
#include <cstring>
#include "../utils/Functions.h"
#include "../utils/Constantes.h"

using namespace convertTypes;
using namespace std;

class Index {

private:
	ifstream* indexFile; // el archivo que tiene la salida del merge
	ofstream* dataFile; // archivo que contiene nro de doc | frec | (posiciones)+
	ofstream* FCFile; // el archivo que va a almacenar el lexico
	ofstream* pointersFile; // archivo con los punteros al principio de cada bloque del archivo FCFile
//	ofstream* namesTable;   // lo voy a dejar para lo ultimo
	unsigned int wordsNumber;
	unsigned int pointerData;
	unsigned int pointerWord;
	vector <Register>* v_registers;

	short int lettersDiff (string sold, string snew);
	void saveData (vector <Data>* v_data);

public:
	Index (string indexFile,string);
	~Index ();
	unsigned int getWordsNumber();
	void readRegisters ();
	void frontCoding ();
	void printRegisters();
	void run();
};

#endif /* INDEX_H_ */
